nginx 504网关超时解决方法 – 优质盒子 |
您所在的位置:网站首页 › linux 代理网关 › nginx 504网关超时解决方法 – 优质盒子 |
504网关超时 Nginx突然报错504网关超时,在使用php对数据库进行大量查询操作时,偶尔会报错504网关超时。遇到504网关超时也不用怕,只是个别操作会造成504网关超时,重新刷新超时页面,也可以继续进行数据库连接操作,只是比较麻烦,下面看一下如何解决Nginx 504网关超时的问题。 通常会有下面几种情况导致504网关超时: 网站程序处理大量数据,导致等待时间过长,造成504网关超时。web程序中调用外部请求时,由于外部请求响应超时,所造成的504网关超时。连接SQL数据库失败后,没有及时停止程序,造成死循环后,产生的504网关超时。504网关超时的问题出在Nginx的配置上。下面登录server,打开nginx的配置文件。可以使用xshellorXftp工具登录服务器,前者是在Linux系统中进行修改,后者是通过SSH的SFTP方式进行文件修改。 修改nginx配置修改 /etc/nginx/nginx.conf document. 在http {}的块中添加参数: fastcgi_connect_timeout 6000; fastcgi_send_timeout 6000; fastcgi_read_timeout 6000; 下面看一下这几个参数都有什么作用。 fastcgi_connect_timeout fastcgi连接超时时间,默认60秒 fastcgi_send_timeout nginx 进程向 fastcgi 进程发送请求过程的超时时间,默认值60秒 fastcgi_read_timeout fastcgi 进程向 nginx 进程发送输出过程的超时时间,默认值60秒 另外,在nginx中,还有针对acting超时的参数设置。 proxy_connect_timeout 20000; proxy_send_timeout 20000; proxy_read_timeout 20000; proxy_connect_timeout nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 后端服务器数据回传时间(代理发送超时) proxy_read_timeout 连接成功后,后端服务器响应时间(代理接收超时) 关于代理超时参数配置这部分,如果你的Nginx没有对外提供代理服务,可以忽略此处配置。 Nginx修改完毕后,使用nginx -t 查看以下配置文件是否正确,然后重新启动nginx服务。 systemctl restart nginx 修改PHP配置1.修改 /etc/php.ini 文件,在php.ini文件中查找 max_execution_time ,单位秒。 max_execution_time max_execution_time 是php脚本最大执行时间,默认时间30秒,建议修改值300秒。 2.在 /etc/php-fpm.d 中,修改 www.conf 文件。查找 request_terminate_timeout,单位秒。 request_terminate_timeout 设置单个请求的超时时间,建议设置6000 3.可以在PHP程序中可加入 set_time_limit(seconds) 设置最长执行时间 例如:set_time_limit(0) 表示不超时。 在php中修改完参数后,重新启动php服务。 systemctl restart php-fpm 总结以上就是修改nginx 504网关超时的办法,一般在数据量比较大的环境中会照成网关超时。通过上面的解决办法,通过延长超时时间的办法,暂时解决了504网关超时,最后还是要优化网站程序和数据库才是最终的解决方案。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |